package com.qumitech.visualnovel.datasource.console;

import java.util.List;
import com.qumitech.visualnovel.model.dao.console.GameRecordDO;
import com.qumitech.visualnovel.pubdef.dto.game.GameDailyDataDTO;
import org.apache.ibatis.annotations.Param;

public interface GameRecordDOMapper {
    int deleteByPrimaryKey(Long id);

    int insert(GameRecordDO record);

    int insertSelective(GameRecordDO record);

    GameRecordDO selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(GameRecordDO record);

    int updateByPrimaryKey(GameRecordDO record);

    int getGameRecordDetailListCount(@Param("tableName") String tableName,
        @Param("uid") String uid, @Param("minRewardDiamonds") String minRewardDiamonds,
        @Param("maxRewardDiamonds") String maxRewardDiamonds, @Param("logType") String logType,
        @Param("startTime") String startTime, @Param("endTime") String endTime);

    List<GameRecordDO> getGameRecordDetailList(@Param("tableName") String tableName,
        @Param("uid") String uid, @Param("minRewardDiamonds") String minRewardDiamonds,
        @Param("maxRewardDiamonds") String maxRewardDiamonds, @Param("logType") String logType,
        @Param("startTime") String startTime, @Param("endTime") String endTime,
        @Param("orderType") String orderType, @Param("orderBy") String orderBy,
        @Param("offset") int offset, @Param("limit") int limit);

    int countGameRecordDailyData(@Param("uid") String uid,
                                 @Param("minGamingDiamonds") String minGamingDiamonds,
                                 @Param("maxGamingDiamonds") String maxGamingDiamonds,
                                 @Param("gameType") String gameType,
                                 @Param("startTime") String startTime,
                                 @Param("endTime") String endTime
                                 );

    List<GameDailyDataDTO> listGameRecordDailyData(@Param("uid") String uid, @Param("minGamingDiamonds") String minGamingDiamonds,
                                                   @Param("maxGamingDiamonds") String maxGamingDiamonds,
                                                   @Param("gameType") String gameType,
                                                   @Param("startTime") String startTime,
                                                   @Param("endTime") String endTime,
                                                   @Param("orderType") String orderType,
                                                   @Param("orderBy") String orderBy,
                                                   @Param("offset") int offset,
                                                   @Param("limit") int limit);

}